#include "List.h"
// 顺序表的初始化
void Init_Sql_list(Sql_list *L)
{
	L->len = 0;
}
// 顺序表的尾部插入
void Insert_Sql_list(Sql_list *L, Element_data e)
{
	if (NULL == L)
	{
		printf("顺序表为NULL\n");
		return;
	}
	if (L->len >= MAX_SIZE)
	{
		printf("顺序表已满\n");
		return;
	}
	L->data[L->len] = e;
	L->len++;
}

// 顺序表的任意插入
void insertpluse_Sql_list(Sql_list *L, int where, Element_data a)
{
	if (L == NULL)
	{
		printf("顺序表为NULL\n");
		return;
	}
	if (where < 1 || where > (L->len + 1))
	{
		printf("插入位置不合法\n");
		return;
	}
	// 插入逻辑位置为where的位置
	for (int j = L->len - 1; j >= where - 1; j--)
	{
		L->data[j + 1] = L->data[j];
	}
	L->data[where - 1] = a;
	L->len++;

	//  插入逻辑位置为where的位置
	for (int i = L->len; i >= where; i--)
	{
		L->data[i] = L->data[i - 1];
	}
	L->data[where - 1] = a;
	L->len++;
}
// 顺序表的尾删
void delete_Sql_list(Sql_list *L)
{
	if (L == NULL)
	{
		printf("顺序表为NULL\n");
		return;
	}
	if (L->len == 0)
	{
		printf("顺序表元素为零\n");
		return;
	}
	L->len--;
}

// 顺序表任意位置的删除
Element_data deletpluse_Sql_list(Sql_list *L, int where)
{
	if (where < 1 || where > MAX_SIZE)
	{
		printf("你输入的位置不合法\n");
	}
	Element_data res = L->data[where - 1];
	for (int i = where; i <= L->len; i++)
	{
		L->data[i - 1] = L->data[i];
	}
	L->len--;
	return res;
}
// 顺序表的遍历
void printf_Sql_list(Sql_list *L)
{
	for (size_t i = 0; i < L->len; i++)
	{
		printf("姓名：%s\t|年龄：%s\t|id:%d\t|\n",
			   L->data[i].name, L->data[i].sex, L->data[i].id);
	}
}
// 顺序表的判空
void IsEmpty_Sql_list(Sql_list *L)
{
	if (L->len == 0)
	{
		printf("表内数据为零\n");
		return;
	}
	printf("表内还有数据\n");
}
void clear_Sql_list(Sql_list *L)
{
	L->len = 0;
	memset(L->data, 0, 50 * sizeof(L->data[0]));
}